package com.kerrykidz.system.util.security;

import java.util.ArrayList;
import java.util.List;

import com.rdp.util.io.JsonUtil;

/**
 * 
 * @ClassName: MenuUtils
 * @description: 菜单帮助类
 * @author: QUINN
 * @date: 2014年6月23日 下午5:03:14
 * @version: V1.0
 * 
 */
public class MenuUtils {

	// 检查节点是否还有子节点
	public static boolean hasChilden(String id, List<PermissionObj> set) {
		for (PermissionObj bo : set)
			if (id.equals(bo.getPid()))
				return true;
		return false;
	}

	// 递归查询无线级联菜单
	public static String getMenus(List<PermissionObj> set) {
		if (set != null && set.size() > 0) {
			List<PermissionObj> list = new ArrayList<PermissionObj>();
			for (PermissionObj bo : set) {
				if ("1".equals(bo.getPid())) {
					recursive(bo, set);
					list.add(bo);
				}
			}
			return JsonUtil.AllJsonUtil().toJson(list);
		}
		return null;
	}

	private static void recursive(PermissionObj bo, List<PermissionObj> set) {
		if (hasChilden(bo.getId(), set)) {
			List<PermissionObj> list = new ArrayList<PermissionObj>();
			for (PermissionObj bean : set)
				if (bo.getId().equals(bean.getPid())) {
					recursive(bean, set);
					list.add(bean);
				}
			bo.setChildren(list);
		}
	}

	// 检查URL是否带有/前缀，如果没有增加一个/前缀
	public static String prefixURL(String url) {
		return url.startsWith("/") ? url : "/" + url;
	}
}
